1. Field of the Invention
The present invention is generally directed toward a method and an apparatus for copying data within a storage system or between storage systems. More specifically, the present invention relates to copying stored data of one storage volume to another storage volume.
2. Discussion of Related Art
A computing environment typically includes a storage system for storing data. Storage systems generally subdivide storage capacity into distinct storage volumes also referred to as LUNs. One example of a storage system may include a Redundant Array Of Independent Disks (RAID) storage system that has many LUNs distributed over a plurality of disks. An example of a single disk in the array is a hard disk drive as typically found in a personal computer. In a RAID storage system, each storage volume is managed in accordance with a selected RAID management technique. In other words, each LUN uses a different RAID management level as required for its particular application. A storage volume is as small as a partition of a single computer disk or non-volatile random access memory device, or as large as a section of storage space of a vast storage system containing multiple computer disks, or even multiple disks distributed physically over a communications network. Requests are made by host systems to manage the storage volumes and to access data stored in the storage volumes. The requests often include input/output (I/O) requests that write to and/or read from the storage volumes.
A typical sequence in configuring LUNs involves a user, such as a system administrator, defining storage space to create a particular LUN. With the storage space so defined, a storage management technique is associated with the newly created LUN. One example of the storage management technique is a RAID storage management, such as RAID level 5. The storage space of the LUN is then initialized with a process that involves formatting the storage space associated with the LUN to clear any previously stored data. In the RAID storage system, the process also involves initializing any redundancy information required by the associated RAID management level. Requests to the LUN are made during the initialization process of the LUN, as described in U.S. patent application Ser. No. 09/274,582, commonly owned by LSI logic Corporation and incorporated by reference herein.
In the RAID storage system, information is stored across multiple disks. The information includes redundant data provided by a host system as well as redundant data generated and managed by the RAID storage system. The information is often stored on the disks through a process called “striping”. Striping spreads the information across the disks as storage volumes and enhances the reliability and/or performance of the storage system. For example, when information is lost on one disk of the array, the storage system continues to operate using redundant information from other disks of the array.
The RAID storage system has many storage volumes distributed throughout the disks of the array. Generation and management of the storage volumes are transparent to applications on the host system. An example of a host system includes a host operating system, such as Windows developed by Microsoft Corporation. Access to data on the disks is gained through I/O operations, such as reading and writing. Storage controllers that are usually internal to the storage subsystem process these I/O operations. A user working in a host operating system environment of a computer views the multiple disks as a single disk. The disks are viewed as a single disk since the information of the RAID storage system, including distribution of information, is independent of and transparent to the host operating system that is coupled to the RAID storage system.
Since information is redundantly stored, the RAID storage system can operate in a reduced or degraded mode that allows users to continue accessing the information despite a temporary loss of one of the disk drives in the array. The missing information associated with the inoperable disk drive is constructed from the information stored on the other disk drives of the array. The information stored in other disk drives of the array is also used to reconstruct the missing information upon initialization, repair, or replacement of the lost disk drive. The RAID storage system structure and operation increases the mean-time-between-failures and makes the RAID storage system more fault tolerant.
While the RAID storage system allows access during normal and degraded modes, access to particular storage volumes is precluded during managerial operations of the RAID storage system. Access to particular storage volumes of other types of storage systems is similarly precluded during managerial operations. For example, a user, such as a system administrator, often needs to move data of one storage volume of a particular storage system to another storage volume of the storage system. I/O requests to the two storage volumes are prevented during the move to assure data integrity of the storage volumes. The moves are often necessary to have the information available on new and improved disks as the storage system is upgraded. The moves are also necessary to manage and more evenly distribute loads placed on the storage system by spreading accessible information across more disks.
Preventing I/O requests to storage volumes that are in the process of moving data seriously affects the capability of a storage system. A prevention of I/O requests degrades the storage system so as to limit its effectiveness. A limited storage system is unacceptable in a business environment that demands high reliability and availability. For example, a degraded storage system used in security business environments can allow security breaches to occur during periods of “down” time.
As evident from the above discussion, a need exists for improved structures and methods for copying data between storage volumes of a storage system so as to reduce down time.